#define _CRT_SECURE_NO_WARNINGS 1

#include"queue.h"

//int main()
//{
//	Queue q;
//	QueueInit(&q);
//
//	printf("%d\n", QueueSize(&q));
//	printf("%d\n", QueueEmpty(&q));
//
//	QueuePush(&q, 1);
//	QueuePush(&q, 2);
//	QueuePush(&q, 3);
//	QueuePush(&q, 4);
//	//printf("%d\n", QueueFront(&q));
//	//printf("%d\n", QueueBack(&q));
//
//	printf("%d\n", QueueSize(&q));
//	printf("%d\n", QueueEmpty(&q));
//
//	//QueuePop(&q);
//	//QueuePop(&q);
//	//QueuePop(&q);
//	//printf("%d\n", QueueFront(&q));
//	//printf("%d\n", QueueBack(&q));
//
//	QueueDestroy(&q);
//
//	return 0;
//}




//typedef struct 
//{
//    Queue q1;
//    Queue q2;
//} MyStack;
//
//
//MyStack* myStackCreate()
//{
//    MyStack* tmp = (MyStack*)malloc(sizeof(MyStack));
//    if (tmp == NULL)
//    {
//        perror("myStackCreate:malloc");
//        return NULL;
//    }
//    QueueInit(&tmp->q1);
//    QueueInit(&tmp->q2);
//    return tmp;
//}
//
//void myStackPush(MyStack* obj, int x) 
//{
//    if (QueueEmpty(&obj->q1))
//    {
//        QueuePush(&obj->q2, x);
//    }
//    else
//    {
//        QueuePush(&obj->q1, x);
//    }
//}
//
//int myStackTop(MyStack* obj)
//{
//    Queue* emptyq = &obj->q1;
//    Queue* nonemptyq = &obj->q2;
//    if (!QueueEmpty(emptyq))
//    {
//        emptyq = &obj->q2;
//        nonemptyq = &obj->q1;
//    }
//
//    return QueueBack(nonemptyq);
//}
//
//bool myStackEmpty(MyStack* obj) 
//{
//    return QueueEmpty(&obj->q1) && QueueEmpty(&obj->q2);
//}
//
//int myStackPop(MyStack* obj)
//{
//    Queue* emptyq = &obj->q1;
//    Queue* nonemptyq = &obj->q2;
//    if (!QueueEmpty(emptyq))
//    {
//        emptyq = &obj->q2;
//        nonemptyq = &obj->q1;
//    }
//
//    while (QueueSize(nonemptyq) > 1)
//    {
//        int x = QueueFront(nonemptyq);
//        QueuePush(emptyq, x);
//        QueuePop(nonemptyq);
//    }
//
//    int ret = QueueFront(nonemptyq);
//    QueuePop(nonemptyq);
//    return ret;
//}
//
//
//int main()
//{
//    //MyStack* mst = myStackCreate();
//    //myStackPush(mst, 1);
//    //myStackPush(mst, 2);
//    //int ret = myStackTop(mst);
//    //printf("%d\n", ret);
//    //ret = myStackPop(mst);
//    //printf("%d\n", ret);
//    //ret = myStackEmpty(mst);
//    //printf("%d\n", ret);
//
//    MyStack* mst = myStackCreate();
//    myStackPush(mst, 1);
//    int ret = myStackPop(mst);
//    printf("%d\n", ret);
//    myStackPush(mst, 2);
//    ret = myStackTop(mst);
//    printf("%d\n", ret);
//
//
//    return 0;
//}


int main()
{
	int a[] = { 1,2,3,4,5 };
	printf("%d\n", (a + 4) - (a + 1));

	return 0;
}